

import java.lang.*;
import java.io.*;

public class Opdracht311
{
	public static int count = 0;
	public static void main(String[] args)
	{
		//declareer de char array die gebruikt wordt in het algortime.
		//Maak eveneens een main methode om de SchrijfLetterRijtjes methode te testen
        Gewichtendoos doos = new Gewichtendoos(20);
        Combinatie res = new Combinatie(20);
        doos.voegToe(1);
        doos.voegToe(2);
        doos.voegToe(3);
        doos.voegToe(4);
        doos.voegToe(5);

        System.out.println(doos);
        System.out.println(doos.aantal());
        System.out.println("");
        System.out.println("");
        System.out.println("");
        schrijfCombinaties1(doos,3);

	}
	
	static void schrijfCombinaties1(Gewichtendoos doos, int g)
	{
		SchrijfLetterRijtjes3(doos,g);
	}
	
	public static void SchrijfLetterRijtjes3(Gewichtendoos doos, int g)
	{
	

		int teller = doos.aantal();
		int og = doos.get(0);
		int bg = doos.get(teller - 1);
		int[] rij = new int[20];
        combi3(og,bg,g,rij,0);

	}
	
	static void combi3(int og ,int bg, int g, int[] rij,int m)
	{
		
		if (som(rij,m) == g)	
			schrijfRij(rij,m);
		else
		if (som(rij,m) < g)

			for(int i = og; !(i > bg); i++)
			{
				rij[m] = i; m++;
                                og++;
                                bg--;
                                   
				combi3(og,bg,g,rij,m);
				m--;
			}


	}
	
	static int som(int[] rij, int lengte)
	{
		int res = 0;
		for(int i = 0; i < lengte; i++)
			res = res + rij[i];
		return res;

	}
	
	static void schrijfRij(int[] rij, int lengte)
	{
		for(int i = 0; i < lengte; i++ )
			System.out.print(rij[i]);
		System.out.println();
	}


}
